import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Esta clase contiene los movimientos de ñoño
 * 
 * @author Araujo Lara Zahaira Lorena
 * @version 25/11/12
 * 
 */
public class nono extends Personaje
{
    /**
     * Act -
     *  muevete.- Este metodo se usa para desplazar a el jugador se un punto a otro de la pantalla con incrementos exactos se valida si la coordenada del objeto es mayor a el tamaño se reinicia su coordenada.
     *  tiraTrampa.-Este metodo se utiliza para insertar un objeto de la clase trampa a el mundo.
     *  choca.-Este metodo valida los diferentes tipos de intersecciones que tenga este objeto con los demas.
     */
    private int inc;//variable global que se utiliza para 
    private boolean band,bandChocaChavo=false;
    public void act() 
    {
        inc=2;// incremento de 2 en 2 de movimiento
        tiraTrampa();
        mueve();
       
      
       
    } 
    
         /**
     * public void mueve()
     * Este metodo contiene dos variables locales x y y que se igualan a las coordenadas del objeto de esta clase,
     * utiliza la variable global band que  indica si se puede mover el jugador.  
     */
    public void mueve()
    {
        int x=getX();
        int y=getY();
       
        if(band==false)
        {
            if(x>=579)
            {
                x=0;
            
                setLocation(x,y);
            }
            else
                   setLocation(x+inc,y);
        }
    }
    
         /**
     * Cada tal coordenada tira una trampa.  
     */
     public void tiraTrampa()
    {
      
        Mundo mundo;
        pelota t=new pelota();
        mundo = (Mundo)getWorld();
        Actor act;
        act=getOneIntersectingObject(pelota.class);
        
        if(act==null)
        { 
          
            if(getX()== 230 || getX() == 396 || getX()==550 || getX() == 80)
            {
               mundo.addObject(t,getX(),getY()+20);
            
            }
            else
            {
              //trampa no tira por que se encuentra una en esa ubicacion   
            }
        }
    }
    
         /**
     *Checa si este objeto choca con otro de otra clase 
     */
   public void choca()
    {
        Actor act;
        act=getOneObjectAtOffset(0,0,chavo.class);
        if(act!=null)
        {
           bandChocaChavo=true;
        }
    }
    
         /**
     * Actualiza una bandera de movimiento de esta clase
     * @param b bandera de movimiento del objeto
     */
   public void actualizaBand(boolean b)
   {
       band=b;
   }
   
}
